Relational DataBase Management System (RDBMS) software may use a Structured Query Language (SQL) interface. A RDBMS uses relational techniques for storing and retrieving data in a relational database. Relational databases are organized into tables that consist of rows and columns of data. The rows may be called tuples or records or rows. A database typically has many tables, and each table typically has multiple records and multiple columns.
A table in a database can be accessed using an index. An index is an ordered set of references (e.g., pointers) to the records in the table. The index is used to access each record in the table using a key (i.e., one of the fields or attributes of the record, which corresponds to a column). The term “key” may also be referred to as “index key”. Without an index, finding a record requires a scan (e.g., linearly) of an entire table. Indexes provide an alternate technique to accessing data in a table. Users can create indexes on a table after the table is built. An index is based on one or more columns of the table.
A query may be described as a request for information from a database based on specific conditions. A query typically includes one or more predicates. A predicate may be described as an element of a search condition that expresses or implies a comparison operation (e.g., A=3).
Generated columns in relational database tables are used to store pre-computed values. A generated column is used by a query optimizer to replace expressions in a query that are equivalent to the generated column's expression. However, there are several cases in which the generated column is used to store a user-friendly format of underlying data and is used directly in application queries. For example, the generated column may be a zero-padded string representation of an integer base column. Although integer comparisons are faster than string comparisons, string comparisons would be performed on the zero-padded string representation.